type #Vector (NormalFloat, NormalFloat);

type #Point {
    name: String,
    pos:  #Vector
};

type #Shape enum {
    type #Line (#Point, #Point);
    type #Polygon {
        points: List[#Point]
    };
    type #Circle {
        center: #Point,
        radius: NormalFloat
    };
};

type #Canvas {
    shapes: List[#Shape]
};
